/**
 * 1.数组元素可以是任意数据类型
 */
//直接字面量创建数组
// var arr = [10,'hello',true,null,undefined,{name:'张三'}];
// console.log(arr,'数组');
//2.通过索引/下标访问数组元素 从0开始 arr[index]
//console .log(arr[3]);

/**
 * 数组api
 * 1.pop方法 从数组末尾删除一个数组元素
 * 2.push方法 从数组末尾增加数组元素
 * 3.shift  从数组头部开始删除一个数组元素
 * 4.unshift 从数组头部开始添加数组元素
 * 5.splice 从数组任意位置删除或者增加数组元素
 *    参数：index howmany(值是0表示添加 只是n表示删除几项) 增加数组元素
 */

// arr.pop();
// arr.push('hello js');
// arr.shift();
// arr.unshift(100,200,300);
// arr.splice(2,0,false,100);//表示从索引为2的位置增加数组元素 增加是false和100
//arr.splice(4,1);//表示从索引为4的位置删除1项数组元素

// arr.reserve();//反转数组元素
// console.log(arr);

//循环遍历数组元素
// for(let i=0;i<arr.length;i++){
//     console.log(i,arr[i])
// }
// for(let index in arr[index]){
//     console.log(index,arr[index])
// }

/**
 * 迭代方法：
 * 1.forEach for循环的升级版 循环遍历数组元素
 * 2.filter
 * 3.map方法 映射 对没一个数组元素映射
 */

// var arr = [10,'hello',true,null,undefined,{name:'张三'}];
// var res=arr.map(function(item,index,arr){
//     return Number(item )
// })
// console.log(res);
//NaN Not a Number 不是一个数

// forEach(function(index,item,arr){
//    //item 表示数组每一项 表示每一项对应的索引 arr表示数组本身
//    item =item +1;
//    console.log(item,index,arr)
// });
// var res=arr .filter(function(item,index,arr){
//     //要获取函数返回值 函数内部需要使用arr返回
//     return(typeof item=='number')
// });
// console.log(res);

//2.使用构造函数创建数组
var arr =new Array(10,20,30,40,50);
console.log(arr);